package com.data.center.service;

import com.data.center.dto.PersonDto;
import com.data.center.dto.StaffDto;
import com.data.center.entity.Staff;
import com.baomidou.mybatisplus.extension.service.IService;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 
 * @since 2023-12-05 03:29:24
 */
public interface StaffService extends IService<Staff> {

    List<StaffDto> findStaff(StaffDto person);

    Staff addStaff(StaffDto person) throws InvocationTargetException, IllegalAccessException;

    Staff forceAddStaff(StaffDto person) throws InvocationTargetException, IllegalAccessException;

    StaffDto updateStaff(StaffDto originalStaff, StaffDto updateStaff) throws InvocationTargetException, IllegalAccessException;

    boolean logicalDelete(String id);

    boolean physicalDelete(String id) throws InvocationTargetException, IllegalAccessException;

    StaffDto merge(StaffDto staffDto, StaffDto deletedStuff) throws InvocationTargetException, IllegalAccessException;

    List<Staff> searchByOrganizationId(String id);

    int deleteByOrganizationId(String id);

    int mergeByOrganizationId(String id, String deletedId);
}
